package MoC;

import java.util.*;

//////////////////////////////////////////////////////////////////////////
//// ResultMessages
/**

     Uma colecao de mensagems, geradas em uma determinada fase da analise.

@author Ivan Jeukens
@version v 0.1 5/2/2002
*/
public class ResultMessages {
    
    public ResultMessages(String phase) {
        _phase = phase;
        _messages = new LinkedList();
        _warnings = 0;
        _errors = 0;
    }

    ///////////////////////////////////////////////////////////////////
    ////                        public methods                     ////
    
    public void addMessage(Message msg) {
        _messages.add(msg);

        switch(msg.getStatus()) {
            case Message.ERROR: _errors++; break;
            case Message.WARNING: _warnings++; break;
        }
    }
    
    public Message getMessage(int index) {
        return (Message) _messages.get(index);
    }

    public Iterator messagesIterator() {
        return _messages.iterator();
    }
    
    public int size() {
        return _messages.size();
    }
    
    public String summary() {
        return new String(_phase + " : " + _errors + 
            " errors, " + _warnings + " warnings");
    }

    public int getTotalErrors() {
        return _errors;
    }

    public int getTotalWarnings() {
        return _warnings;
    }

    ///////////////////////////////////////////////////////////////////
    ////                        private variables                  ////

    private String _phase;
    private LinkedList _messages;
    private int _errors;
    private int _warnings;
}
